package org.dromara.xhlj.domain.vo;

import java.math.BigDecimal;
import org.dromara.xhlj.domain.XhljEnterpriseProduct;
import org.dromara.xhlj.domain.XhljEnterprise;
import org.dromara.xhlj.domain.XhljProductFeedback;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreType;
import com.fasterxml.jackson.annotation.JsonInclude;
import org.dromara.common.core.utils.tree.TreeCruxField;
import org.dromara.wx.domain.WxUser;
import org.dromara.wx.domain.vo.WxUserVo;
import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * 展商产品视图对象 xhlj_enterprise_product
 *
 * @author yf
 * @date 2024-07-28
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = XhljEnterpriseProduct.class)
public class XhljEnterpriseProductVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 产品ID
     */
    @ExcelProperty(value = "产品ID")
    private Integer productId;
    /**
     * 产品名称
     */
    @ExcelProperty(value = "产品名称")
    private String productName;
    /**
     * 展商ID
     */
    @ExcelProperty(value = "展商ID")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Translation(type = XhljEnterprise.TRANS_ID_TO_VO, mapper = "enterpriseId")
    private XhljEnterpriseVo enterprise;
    private Integer enterpriseId;
    /**
     * 产品描述
     */
    @ExcelProperty(value = "产品描述")
    private String productContent;
    /**
     * 产品描述
     */
    @ExcelProperty(value = "产品描述Text")
    private String productContentText;
    /**
     * 图片
     */
    @ExcelProperty(value = "图片")
    private String image;
    /**
     * 图片描述
     */
    @ExcelProperty(value = "图片描述")
    private String imageDescription;
    /**
     * 视频
     */
    @ExcelProperty(value = "视频")
    private String videoFile;
    /**
     * 视频描述
     */
    @ExcelProperty(value = "视频描述")
    private String videoDescription;
    /**
     * 产品类型（0=软件，1=硬件，2=服务）
     */
    @ExcelProperty(value = "产品类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "product_type")
    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, other = "product_type", mapper = "productType")
    private String productTypeDictData;
    private String productType;
    /**
     * 产品价格
     */
    @ExcelProperty(value = "产品价格")
    private BigDecimal price;
    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 创建人sys_user（展商）
     */
    @ExcelProperty(value = "创建人sys_user")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Translation(type = SysUser.TRANS_ID_TO_VO, mapper = "createBy")
    private SysUserVo sysUser;
    private Integer createBy;
    /**
     * 展商产品反馈留言 子列表
     */
    @JsonIgnore
    @Translation(type = XhljProductFeedback.TRANS_ID_TO_VO_LIST, mapper = "productId" , other = "enterprise_product_id")
    private List<XhljProductFeedbackVo> xhljProductFeedbackVoList;
}
